Systems and methods of media management, such as management of media to and from a media storage library

ABSTRACT

A system and method for determining media to be exported out of a media library is described. In some examples, the system determines a media component to be exported, determines the media component is in the media library for a specific process, and exports the media component after the process is completed.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This is a continuation application of U.S. patent application Ser. No.11/694,748, filed Mar. 30, 2007, which claims priority to U.S.Provisional Patent Application No. 60/871,730, filed Dec. 22, 2006, eachof which is herein incorporated by reference in its entirety. Thisapplication is further related to the following patents and pending U.S.applications, each of which is hereby incorporated herein by referencein its entirety:

U.S. patent application Ser. No. 09/991,900, filed Nov. 23, 2001,entitled METHOD AND SYSTEM FOR SCHEDULING MEDIA EXPORTS, U.S. patentapplication Ser. No. 10/819,102, filed Apr. 5, 2004, entitled METHOD ANDSYSTEM FOR CONTROLLING A ROBOTIC ARM IN A STORAGE DEVICE, U.S. patentapplication Ser. No. 10/818,750, filed Apr. 5, 2004, entitled SYSTEM ANDMETHOD FOR EXTENDED MEDIA RETENTION, U.S. patent application Ser. No.11/313,267, filed Dec. 19, 2005, entitled SYSTEMS AND METHODS FORIMPROVED MEDIA IDENTIFICATION IN A STORAGE DEVICE, and U.S. patentapplication Ser. No. 11/313,256, filed Dec. 19, 2005, entitled SYSTEMSAND METHODS FOR CONTAINERIZED DATA STORAGE AND TRACKING.

BACKGROUND

Data storage systems interact with media libraries in data storage andretrieval operations. Media libraries house and control physical media(magnetic tapes, optical disks, and so on) that is used during storageoperations, such as data storage operations. Libraries are limited inthe number of media components they are able to hold, in many cases dueto the physical size of the library. Therefore, a data storage systemmay need to transfer media components out of the library that are nolonger needed or useful for data storage (e.g., media components attheir storage capacity, or media components scheduled for offsitearchiving), and bring in new media components for future storageoperations.

Data storage systems may employ management systems to track the movementof media components to and from media libraries. Periodically, thesystems transfer media components to offsite storage locations, such asmedia components no longer needed or useful for the system at certaintimes. Management systems may track the movement or location of mediacomponents used by a data storage system.

The management systems typically rely on policies that instruct themanagement systems as to the location of media components and the timeat which to transfer media components to a determined location. However,the policies may be somewhat inflexible and lack insight into the needsof a data storage system or its policies, and therefore may instruct thelibrary to perform undesirable media component transfers.

Additionally, libraries may look to similarly rigid policies whenordering new media components to be used in the system. Again, typicaldata storage systems, using rigid media component ordering and buyingpolicies, generally do not achieve a desirable balance between the needsof a system and the number of media components coming into the system tomeet those needs. Some media components are expensive, and thus orderingtoo many can be costly. Alternatively, it can be detrimental to thesystem if too few media components are available for a given data storejob.

Furthermore, media management systems are not able to control allaspects of media component transfers. Media components are likely to betransferred to offsite storage locations operated by other entities thanan entity operating the data storage systems and media libraries.Additionally, new media components enter the system after beingpurchased from outside vendors. Because outside entities provide, and attime store, media components to the data storage systems, the managementof media components may stop or be severely limited when the mediacomponents are not physically within or controlled by the system (e.g.,when media components are stored offsite).

The foregoing examples of some existing limitations are intended to beillustrative and not exclusive. Other limitations will become apparentto those of skill in the art upon a reading of the Detailed Descriptionbelow.

These and other problems exist with respect to media management systems.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example of locations thathouse media components and the flow between such locations.

FIG. 2 is a block diagram illustrating an example of a data storagesystem.

FIG. 3 illustrates an exemplary data structure that may compriseexamples of the system.

FIG. 4 is a flow diagram illustrating an example life cycle of a mediacomponent.

FIG. 5 is a process flow illustrating steps performed by the systembefore transferring media components out of a media library.

FIG. 6 is a process flow illustrating automatic recall and export of amedia component.

FIG. 7 is a representative computer display or web page illustratingrecall media functions.

FIG. 8 is a process flow illustrating steps performed by the system inpurchasing new media components.

FIG. 9 is a representative computer display or web page illustratingautomated media prediction.

FIG. 10 is a block diagram illustrating components of a system forverifying recalled or exported media components.

FIG. 11 is a flow diagram illustrating a routine for verifying recalledmedia components.

FIG. 12 is a representative computer display or web page illustratingscreens used in retrieved media verification.

FIG. 13 is a flow diagram illustrating an exemplary routine forrecalling media based on a predicted restore operation

FIG. 14 is a flow diagram illustrating an exemplary routine forrecalling media based on changes to a data set.

In the drawings, the same reference numbers and acronyms identifyelements or acts with the same or similar functionality for ease ofunderstanding and convenience. To easily identify the discussion of anyparticular element or act, the most significant digit or digits in areference number refer to the Figure number in which that element isfirst introduced (e.g., element 1104 is first introduced and discussedwith respect to FIG. 11).

Copyright Notice

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosures, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

DETAILED DESCRIPTION

Examples of the technology are concerned with systems and methods thatmanage, direct, track, control, or facilitate the management or controlof media to and from media storage libraries. Although described inconnection with certain examples, the system described below isapplicable to and may employ any wireless or hard-wired network or datatransfer system that stores and conveys data from one point to another,including communication networks (such as LANs, WANs, the Internet),enterprise networks, storage networks, and so on.

Examples of the technology are directed to systems and methods thatconsider the needs, characteristics, or other attributes of a datastorage system in the management of media components in a media storagelibrary. In some examples, the system may retrieve a media componentfrom an offsite storage location, transfer the media component to amedia library, and provide a media library operator or automated librarymanagement system with information about the retrieved media component.In some examples, the system may consider the performance of a datastorage system using the media library in determining how many mediacomponents to transfer into the media library. In some examples, thesystem verifies and tracks media components that are transferred into amedia library from offsite locations.

Examples of the technology are directed to systems and methods thatmanage, control, direct, track, or facilitate the management or controlof objects to and from storage facilities. Objects may include mediacomponents, shipping containers (such as envelopes, boxes, packages, andso on), consumer products (such as DVDs, CDs, books, electronics, and soon), rental products (such as rental DVDs, tapes, and so on), and otherobjects that may be stored in a facility (such as a storage facilitywith shelved storage) and may be transferred to and from the facility toother locations.

Various examples of the invention will now be described. The followingdescription provides specific details for a thorough understanding andenabling description of these examples. One skilled in the art willunderstand, however, that the system may be practiced without many ofthese details. Additionally, some well-known structures or functions maynot be shown or described in detail, so as to avoid unnecessarilyobscuring the relevant description of the various examples.

The terminology used in the description presented below is intended tobe interpreted in its broadest reasonable manner, even though it isbeing used in conjunction with a detailed description of certainspecific examples of the system. Certain terms may even be emphasizedbelow; however, any terminology intended to be interpreted in anyrestricted manner will be overtly and specifically defined as such inthis Detailed Description section.

Suitable System

A block diagram 100 illustrating some of the locations associated withmedia storage and the flow or transport and travel between suchlocations is shown in FIG. 1. In diagram 100, media components, such asmagnetic tapes, optical disks, grid computing elements, and otherremovable storage media, may be located in media library 110. Medialibrary 110 may contain storage for multiple physical media andmechanisms (such as pickers, grippers, automated arms, and so on) thatassist in handling and moving the media components around the library110. Additionally, media library 110 may facilitate the storage of othertypes of media, as discussed herein.

Media components, such as tapes, may travel between media library 110and any or all locations shown in FIG. 1. For example, the system maywrite (or, copy) data to a media component, such as a magnetic tape, andschedule a transfer of the tape to offsite storage location 130. Suchtransfer to offsite storage may be performed for a variety of reasons.In this example, the system tracks the tape's location from the library110 to when the tape is in transit 124, to the offsite storage location130. Also, the system may track a tape from storage location 130 back tothe library 110. Additionally, the system may track new media componentsfrom an outside supplier 140, to the library 110, or even in transit 122from the outside supplier 140. The outside 140 supplier may be a mediavendor, a spare media pool, an additional or alternative library, acustomer site, or other sources. Furthermore, the system may track mediacomponents as they leave the system 126 and are removed and eitherdisposed, recycled, or otherwise destroyed at location 150. The assignedstorage location can be any facility that stores or archives objects andthe transit can refer to any method of moving the media component, suchas a common courier, overnight delivery service, and so on. A blockdiagram illustrating an example data storage system is disclosed in FIG.2. A data storage system 210 is connected to media library 110, and to agraphical user interface 220, such as an interface available viacomputing system 222. The data storage system may be a stand alonesystem or may be part of a complete storage management system. The datastorage system 210 may be connected to the library 110 via a fixedconnection 242, a wireless connection 241, or via a network 240 (such asthe Internet, a private LAN, and so on). Other system components mayalso interact with the data storage system 210 via the network 240, awireless connection or a direct connection, such as systems at offsitestorage locations 130, systems at tape vendors 140 (such as a vendormanagement system), and so on.

As discussed above, the library 110 may contain multiple mediacomponents 232, such as magnetic tapes, optical disks, and so on. Thelibrary may also include or be connected to a receptacle orimport/export slot 234 (such as a mail slot), whereby media componentsmay be exported from the library or be received to be entered into thelibrary.

The data storage system 210, via the computing system 222, may comprisean administration component 238 and/or an automation component 236(e.g., modules, program code, and so on). An operator or administratorof the media library, via the computing system 222, may use components236 and 238 to implement policies, verify media components within thelibrary, or perform other management functions described herein. Thesystem may also perform management functions automatically and/ordynamically by following default patterns, management policies, and soon. The library may contain a verification system 260, including ascanner 262 or other automated data capture device (e.g. bar codereader/scanner, radio frequency identification (RFID) reader, audiorecorder, etc.). The verification system will be discussed in greaterdetail herein.

The computing system may also optionally include the verification system260, comprising a scanner 262 or other automated data capture device(e.g. bar code reader/scanner, radio frequency identification (RFID)reader, audio recorder, etc.).

Computing system 222 may be a personal computer or workstation, havingone or more processors 240 coupled to one or more user input devices 242and data storage devices 244. The computer is also generally coupled toat least one output device such as a display device 246 and one or moreoptional additional output devices 248 (e.g., printer, plotter,speakers, tactile or olfactory output devices, etc.). The computer maybe coupled to external computers, such as via an optional networkconnection 250, a wireless transceiver 252, or both.

The input devices 242 may include a keyboard and/or a pointing devicesuch as a mouse. Other input devices are possible such as a microphone,joystick, pen, game pad, scanner, digital camera, video camera, and thelike. The data storage devices 244 may include any type ofcomputer-readable media that can store data accessible by the computer222, such as magnetic hard and floppy disk drives, optical disk drives,magnetic cassettes, tape drives, flash memory cards, digital video disks(DVDs), Bernoulli cartridges, RAMs, ROMs, smart cards, etc. Indeed, anymedium for storing or transmitting computer-readable instructions anddata may be employed, including a connection port to or node on anetwork such as a local area network (LAN), wide area network (WAN) orthe Internet (not shown in FIG. 2).

In some cases, data storage system 210 contains a media managementcomponent 212, data files 214 stored in a database 213 or memory, and ajob management component 216. The media management component may controlthe media used in data store operations, and also may control theexporting of media from the library or ordering/purchasing of media froman outside vendor. System 210 may use routines or other processes storedin data files when performing such controls or operations. Although notshown, the system may also control these functions, or part of thesefunctions, within components 236 or 238 of computing system 222.

Data files 214 may be any typical data files, such as database files,relational database tables, flat files, structured or unstructured data,and so on. FIG. 3 illustrates an exemplary data structure 300. Datastructure 300 may store data in fields or records 312-318, such assystem-wide data related to when media is to be exported 312, when mediais to be purchased 314, where media is to be exported 316, how muchmedia is to be purchased 318, when media is to be archived offsite, whenmedia is to be discarded, and so on. Additionally, data structure 300may also store other system information 320, such as information relatedto why certain media components are in the library, information relatedto the history of storage operational performance, and so on. Forexample, data structure 300, or other similar data files, may storeapplications related to the routines illustrated in the Figures herein.

In some cases, system information may indicate the reason for recallinga media component to the library. For example, the system may recall amedia component in order to restore data to a failed component orresource of a file system or other system. The information 320 mayindicate the restore operation, the schedule time for the restoreoperation, and so on, for one, some or all media components recalled tothe library. In another example, the system information 320 may indicateor otherwise refer to storage operation performance, storage resourcesperformance, individual component performance, and so on. Theinformation may include historical or trend information, statistics,reports, or other groupings of data about the system and its operations.The system information 320 could of course be other information capableof providing knowledge to and about the system, such as information thatenables the system to logically move media into and out of the system asneeded or as predicted.

While not shown, this data structure, or a separate one, may includedata specific to a type of media component, such as a particular tape.As with the media management component, some or all of the data filesmay be stored within in the data storage system 210, the computingsystem 222, or both. Job management component 216 manages storageoperations and other processes.

Additionally, data storage system 210, computing system 222 or library110 may include or carry USB or other removable memory components 275configured to receive, transmit, write or read data from removablestorage devices, such as USB flash drives, smart cards, and so on.

While the term “field” and “record” are used herein, any type of datastructure can be employed. For example, relevant data can have precedingheaders, or other overhead data preceding (or following) the relevantpayload data. Alternatively, relevant data can avoid the use of anyoverhead data, such as headers, and simply be recognized by a certainbyte or series of bytes within a serial data stream. Data structures mayconform to conventions of object oriented programming and/or to othertypes of programming techniques. Any number of data structures and typescan be employed herein.

A flow diagram illustrating a life cycle of a media component is shownas routine 400 in FIG. 4. These flow diagrams do not show all functionsor exchanges of data, but instead they provide an understanding ofcommands and data exchanged or processed under the system. Those skilledin the relevant art will recognize that some functions or exchange ofcommands and data may be repeated, varied, omitted, or supplemented, andother (less important) aspects not shown may be readily implemented.

At step 410, the system purchases or receives a new media component. Themedia component may be, for example, a magnetic tape used to storeinformation during a storage operation. At step 420, the systemtransfers the newly purchased tape to a media library, such as medialibrary 110. In the library or in transit to the library, the system maypopulate or update a data structure or other data object withinformation about the new tape, such as a tape identification. Thesystem may use the created data structure to track the newly acquiredtape as it travels through the life cycle of the tape. The system maytrack the magnetic tape or other media to and from the media library,updating a data structure as the media changes location. The system maydynamically move media as is described herein, and may update the datastructure or create a new data structure to track such movement.

In step 430, the system performs backup or other storage operations andwrites data onto the tape. In step 440, possibly after a certainpredetermined delay, the system transfers the tape out of library 110and to an offsite storage location. In step 450, the tape remains inoffsite storage until needed by library 110 or other system components,such as for a restore operation or during standard rotation of datastorage tapes. In these cases, in step 460, the tape is transferred backto library 110, another library, or rotated to another storage location,and the system employs the tape as needed for storage operations. Oncethe storage operations are completed, the system may transfer the tapeback to the offsite storage location. At a predetermined lifecycle endfor the tape, the system, in step 470, removes the tape from the system,such as moving the tape to a spare media pool or to another storagelocation, or may destroy and/or recycle the tape.

As discussed with respect to FIG. 4, a media component travels betweenmany different locations during a component's life cycle. Implementingadvanced management controls and functions, as discussed in greaterdetail below, allows a system or administrator to more effectivelymonitor and control media, further reducing errors, delays, or otherproblems that may exist in such data storage systems. In some cases, theeffective management of lifecycles of media components enables datastorage systems to complete storage and/or restore operations withinprescribed timelines (e.g., data storage windows) and with fewer errors.

Recall Media Functions to Automate Archive Media Retrieval

As discussed above, the system may use information related to orassociated with a media component before making decisions aboutexporting or recalling a media component.

A process flow or routine 500 performed by the system 210 beforetransferring media components out of a media library is illustrated inFIG. 5. In step 510 of the routine 500, the system 210 (or user of thesystem, such as a system administrator) determines that a tape or othermedia component is eligible to be transferred out of library 110 to analternate storage location, such as a location offsite. For example, thesystem may determine that the tape was involved in a data restore bylooking to a data structure listing all recalled media and their reasonsfor being recalled. Alternatively, a system administrator may remove ahold flag from the tape, indicating the tape is no longer needed forsystem processes.

At step 520, the system compares the age of the tape with predeterminedtime rules or policies. For example, the system may have a global policyof exporting all tapes over x months old out of the library to anoffsite location, or to an auxiliary media library or media pool. If thetape meets a time criteria, the routine moves to step 540, else theroutine moves to step 530, and the tape remains in the media library. Atstep 540, the system looks to the use of the tape, and determines if thetape is involved in a restore or other process within the system. If thetape is not involved in any system processes, the routine moves to step550, else the routine moves to step 530, and the tape is kept within thelibrary. At step 560, the system reviews information regarding anintended use of the tape.

For example, the system 210 may have transferred or imported to thelibrary 110 a tape received from the offsite location 130 into thelibrary in order to perform a restore operation using data from thetape. Often, the tape may be older than other tapes in the library(i.e., would meet the time criteria discussed above under step 520), andabsent other knowledge, the system (or a system administrator) maytransfer the tape back out of the library before a restore operationoccurs. However, as shown in step 550, the system may review informationrelated to the intended use of the tape and decide to keep the tapewithin the media library based on the information. In some cases, theinformation may be about the system's purpose for the tape (such as arestore operation). Alternatively or additionally, the information maybe about the data contained on the tape (e.g., a frequency of use or ofimport, an identity of the tape or the date contained on the tape,metadata associated with the data on the tape, and so on).

The system may recall tapes for restore operations, predicted restoreoperations, or other system operations. For example, the system mayrecall a tape for a predicted restore, and update a data structurecontaining a listing of tapes recalled to the media library to add analert to the recalled tapes entry. The system may indicate a time inwhich the predicted restore is likely to occur, and maintain the alertfor the tape until that time is reached, or until the tape is used in apredicted restore. Thus the system may look to various algorithms indetermining when to hold onto recalled media and when to export recalledmedia.

Referring back to step 550, when the routine determines the tape is notinvolved in any processes, the routine to proceeds to step 560, and thesystem transfers the tape out of the library (such as to the offsitelocation). However, if the tape is involved in a process (or the systemreceives similar information), the system, at step 530, may perform anaction to ensure the tape remains in the media library.

The system may send an alert to an administrator (such as to theadministrator's email address), or create a log entry, listing media notto be exported out of the library. Other alerts are of course possible,such as text messages, prerecorded voice messages, facsimile messages,and so on, all of which are encompassed within “alerts” or “messages”noted herein. In some cases, the system generates a report (such as adaily or weekly report) listing media not to be exported. The system mayflag the media itself, such as providing an alert or indication to amedia component's housing. The system may predict the provisioning ofmedia via an analysis of log entries and other alerts or flags.

The system may also send an alert or message when transferring a tape.In such cases, the alert may indicate the reason for the transfer, ormay contain other information that describes the content of the tape,the reason of the tape's location, the reasons for the timing of thetransfer, and so on. The system may send an alert before transferring orrecalling a tape, during, or soon afterwards. For example, the systemmay send an alert when the system transfers a tape from the library toan offsite location, when the system recalls a tape from the offsitelocation to the library, when the system transfers a tape from onelibrary to another, and so on.

Alternatively or additionally, the system may perform parts of lifecycle 300 and routine 400 automatically. A process flow or routine 600illustrating automatic recall and export of a media component isillustrated in FIG. 6. That is, the system 210 may perform some or allof the steps without the need for an administrator, or after a singleinput or action by the administrator.

For example, in step 610, the system receives a user input or other suchinformation (e.g., automatically generated recall flag or other commandinitiator) indicating a need to recall a media component from an offsitestorage location. In step 620, the system may automatically identify themedia component to be recalled (such as determine the media component'sID or serial number). The system, in step 630, may then automaticallyidentify the location of the media component, such as from theappropriate data structure field stored in database 213. If theidentified media component is at an offsite location, the system, instep 640, may automatically send an email or other message to theappropriate offsite storage location containing the media component.Once a media component is recalled, the system 210, in step 650, mayautomatically acknowledge receipt of or import in of the media componentwithin the library 110 (as explained herein), and may scan, identify,and/or verify the recalled media component. In step 660, the system mayautomatically note a recovery process using the media component hasoccurred or is complete (such as by updating a log of recalled media),and, once the recovery process has occurred, in step 670, automaticallysend the media component back to the offsite storage location or backinto the aging cycle.

Alternatively or additionally, the system may automatically generatereports or other information to send with media components. For example,in step 670, the system may prepare a media component for shipment backto an offsite media component storage facility. The system mayautomatically generate a report listing the tape, such as a report in aformat desired by the storage facility and containing informationdesired by the storage facility. Also, the system may automaticallygenerate a shipping label or other materials used in shipping the tape.The system may also automatically generate an alert or other indicatoror otherwise communicate with the storage facility indicating anincoming exporting of the tape. The system may also automatically alerta carrier to pick up the tape. In other words, the system mayautomatically generate and facilitate the preparation, shipping, andmanagement of media components to be exported.

Referring to FIG. 7, a representative computer display or web page willnow be described with respect to recall media functions, such as for usewith automated media retrieval. The screen of FIG. 7, and screensdiscussed below, may be implemented in C++ or as web pages under XML(Extensible Markup Language), HTML (HyperText Markup Language) or anyother scripts or languages or methods of creating displayable data, suchas the Wireless Access Protocol (“WAP”). The screens or web pagesprovide facilities to receive input data, such as a form with fields tobe filled in, pull-down menus or entries allowing one or more of severaloptions to be selected, buttons, sliders, hypertext links or other knownuser interface tools for receiving user input. While certain ways ofdisplaying information to users is shown and described with respect tocertain Figures, those skilled in the relevant art will recognize thatvarious other alternatives may be employed. The terms “screen,” “webpage” and “page” are generally used interchangeably herein, and maydisplay output or output into another location (e.g., into a file). Whenimplemented as web pages, the screens are stored as displaydescriptions, graphical user interfaces, or other methods of depictinginformation on a computer screen (e.g., commands, links, fonts, colors,layout, sizes and relative positions, and the like), where the layoutand information or content to be displayed on the page is stored in adatabase. In general, a “link” or path refers to any resource locatoridentifying a resource in a network, such as a display descriptionprovided by an organization having a site or node on the network. A“display description,” as generally used herein, refers to any method ofautomatically displaying information on a computer screen in any of theabove-noted formats, as well as other formats, such as email orcharacter/code-based formats, algorithm-based formats (e.g., vectorgenerated), or matrix or bit-mapped formats. While aspects of the systemare described herein using a networked environment, some or all featuresmay be implemented within a single-computer environment.

Referring to FIG. 7, a screen 700 or graphical user interface (such as aGUI 220 for a system administrator), may contain a display of recalledmedia 710. Display 710 may show recalled media currently residing in themedia library, such as tapes denoted, for example, “tape 1” 711, “tape19” 712, “tape N” 713, and so on. Display 710 may contain activeelements, such as a path 714 that enables a user to access details aboutthe media 711-713. For example, a user clicking on “tape 19” may causethe system to display metadata about the tape, content stored in thetape, remarks or information regarding the reason for the tape'slocation in the library, and so on (not shown).

Additionally, screen 700 may also display an export element 720 thatenables an administrator to override the system and/or select a mediacomponent to export. For example, the administrator may use a recalledmedia component for a restore operation ahead of a scheduled restoreoperation. Instead of waiting for the data the media is scheduled toassist in a restore, the administrator may select the media viacomponent 720 and add the media to the following export batch.

Screens may also display active components related to media in thelibrary. For example, a user may select component 730 to view some orall recalled media stored in the library, may select component 740 toview some or all exported media from the library (such as media exportedin a given week or cycle), may select component 750 to view completedtasks with recalled or stored media, or may view other media or systemsprocesses or resources.

Automated Media Prediction, Ordering and Reporting

As discussed above, a system capable of understanding and/or predictingfuture data storage needs may be able to achieve greater levels of datastorage accuracy, may complete storage operations more quickly, and/ormay provide more efficient backup or restore or other storageoperations.

Referring to FIG. 8, a process flow illustrating a routine 800 performedby the system in purchasing new media components is described.

In step 810, the system begins the routine 800 to determine a need toorder and/or purchase media components (such as tapes) for a medialibrary, such as media library 110. In step 820, the routine may look tothe number of new or unused tapes already contained in the library, andif the number is above a predetermined threshold, proceed to step 840,else proceed to step 830. Alternatively or additionally, the system mayskip step 820. In these cases, the system may have a policy thatinstructs the system to order a predetermined number of tapes,regardless of how many tapes are already contained in the library 110.

At step 830, the routine ends and new tapes are not purchased. At step840, the system may look to characteristics of a data storage systememploying media library 110, and determine that the number of tapes inthe library 110 is below a number expected to be needed for futuresystem operations. In some cases, the system may look to the overallcapacity of available media in the library, and make decisions based onthe capacity. The system may track data storage to make similarpredictions. The system may track tape usage over a certain period oftime and determine usage patterns, such as an overall usage increase.The system may then use such patterns to modify the ordering process forfuture storage operations. For example, the system tracks data storesover a month and determines that the data storage system is transferring10 percent more data than in the previous month. The system many modifythe number of tapes normally purchased or brought into the system toaccount for the data transfer increase. The system may then tracktransfers of data for the following month and continue to update andmodify ordering rules and policies.

For example, the system 210 may determine that there are ten unusedtapes to be used in a data storage operation to occur on the firstFriday after the end of a company's fiscal year. For example, the systemmay check a log of historical data store information. Although thesystem generally uses eight tapes for Friday data stores, the system mayrefer to the logged history of storage operations and determine thatdata stores occurring soon after the end of the fiscal year generallyuse fifty percent more tapes than normal data stores. Using thisinformation, the system automatically determines that twelve tapes willbe needed for the upcoming Friday data stores, and orders two extratapes. The system may then update the log or add additional informationto a historical database indicating the order of tapes. Therefore, usingcontext information from the data storage system, the system may be ableto avoid an unnecessary delay in storage operations due to a shortage ofphysical media.

The system may make decisions based on capacity as well. Using theexample above, system 210 may determine that the available media for astorage operation contains 11 GB of free space. The system may reviewtrend data, historical data or information and deduce that the nextstorage operation will require 15 GB of data. Therefore, the system mayorder additionally media to raise the overall capacity of available copyspace an additional 4 GB to the predicted need of 15 GB. The system mayorder any number of media components to satisfy the predicted capacity.

Referring back to routine 800, at step 840, if the routine determinesthat enough tapes are in the library to satisfy a predicted need fortapes, the routine proceeds to step 830, and ends. If there are fewertapes than predicted, the routine proceeds to step 850, and performs anaction to purchase additional tapes.

The system 210 may perform actions in addition to these noted above. Forexample, the system, may alert an administrator to purchase additionaltapes (such as by sending an automatic, scripted email to theadministrator's email address). Alternatively, the system mayautomatically order and/or purchase additional tapes, and may alert theadministrator of any orders or purchases. The system may alsoautomatically store any incoming (ordered or purchased) media componentsidentifications, such as media component IDs, serial numbers,corresponding bar codes, and so on. For example, the system may populateor update a data structure that tracks the contents of a media library,the components used in daily operations of the media library, and so on.

Additionally, the system 210 may update the history of storageoperations after performing actions. The system may redefine rules orpolicies after one order, a number of orders, a predetermined pattern oforders, and so on. The system may alert an administrator when rules orpolicies are updated. Additionally or alternatively, the system maygenerate proposed rules or policies based on predicted ordering orpurchasing behaviors. The system may then send an alert, report, orother notification to be approved by an administrator. In these cases,the system may be constantly monitoring and updating its policies withrespect to the flow of new media components into the library.

Referring to FIGS. 9, a representative computer display or web page willnow be described with respect to automated media prediction, such as foruse with automated media ordering. Screen 900 may display a data storageoperation screen 910 that shows some or all past, present, or futurestorage operations for a given media library or libraries. For example,“Library 1” may have three scheduled storage operations displayed911-913. The display may indicate the expected available capacity 916 ofthe library for a storage operation and a predicted capacity need 917for the storage operation. In this example, the system indicates thatfor a storage operation on Dec. 8, 2006, labeled as component 912, thelibrary will have 50 GB of available media space for a data storepredicted to require 100 GB. Therefore, the system may automaticallyorder additional media to fulfill the deficiency, or may alert the uservia an alert 918 or other indicator to order more media. The system mayreceive an order via component 915, component 920, or in other ways(such as via channels other than interface 900).

Additionally, the system may display information for a data storageoperation. For example, by accessing a path 914, the system may displayinformation related to the storage operation of Dec. 1, 2006, such asinformation about the scheduled data store, information about thepredicted or expected capacity (reasons why, the number of tapes ormedia), and so on. The system may also display and provide informationrelated to other information about the library via component 930,statistical information related to the prediction of storage needs andcapacities via component 940, and other information via component 950.Of course, the system may display via screen 900 or other screens otherinformation or data to users and administrators of the system.

The system 210 may look to a number of sources in predicting the numberof media components likely to be needed in storage operations. Forexample, the system may look to context information such as calendar orhistorical information, user information (such as company historyinformation), and so on. The system may look to recent storageoperational information (such as information related to trends in recentmedia component needs), may look to error information (such asinformation describing failed or erroneous storage operations), may lookto global trend information about storage operations performed at anumber of different and separate data storage systems, and so on.

Retrieved Media Verification and Confirmation Systems

Referring back to FIG. 2, computing system 222 (or, alternatively, datastorage system 210) may also contain a verification system 260 thatchecks and verifies media components as they enter (or exit) the medialibrary 110. For example, the verification system 260 may contain a handheld bar code reader 262 or other type of data capture device thatidentifies entering media components (such as by scanning a bar code onthe media component). The verification system 260 may then look to areport or other file (such as an emailed list of requested mediacomponents) that lists requested media components and verify that themedia component is on the report. If the media component is not on thereport, the verification system may perform an action to determine theproper location for the media component. For example, the system maycheck a data structure containing media component identifications andlocations, may alert a system administrator, may flag the mediacomponent, and so on. The verification system may automatically verifyentering media components, or a media library administrator may performthe verification, such as with scanner or reader 262.

A block diagram illustrating components of a system for verifyingrecalled or exported media components is shown in FIG. 10. The systemmay be wirelessly connected to or otherwise in communication withlibrary 110 and the data storage system 210 via a LAN 1010 or othernetwork, although a wired connection may be employed. The verificationsystem 260 may include a scanner 262, such as a bar code scanner in thisexample, an RFID scanner, or other detection components. The bar codescanner may be used with a media component report, such as report 1020illustrated in FIG. 10. The report 1020 may contain machine readableinformation 1022 (such as bar codes, media IDs, or other machinereadable indicia or devices (like RFID tags)) and human readableinformation 1024 (such as descriptions of media components). Anadministrator or the system may use the scanner 262 to obtaininformation from the report 1020 via the bar codes 1022. Further detailswith respect to verifying media components are discussed with respect toFIG. 11.

A flow diagram illustrating a routine 1100 for verifying recalled mediacomponents is shown in FIG. 11. In step 1110, the system may requestmedia components (such as tapes) from an offsite storage location (suchas a media storage facility). Before sending tapes to the system, instep 1120, the offsite location may generate a report 1020 or othercommunication or indication containing machine readable information 1022and human readable information 1024 for the tapes. Alternatively oradditionally, the report may only contain the human readable information1024, and the system may generate a machine readable report orcommunication using the information 1024. Also, the system may generatea report when requesting media components. The system, in step 1130,receives the requested tapes and corresponding report 1020. In step1140, the system, via an administrator or automatically via sightedlibrary means, scans barcodes on the tapes and barcodes 1022 on thereport 1020 (or on a system generated report). Alternatively oradditionally, the system may import the tapes to the library and acomponent of the library may scan the tapes.

In step 1150, the system compares the scanned bar codes from therequested tapes with the scanned bar codes of a corresponding report. Instep 1160, the system determines if the received tapes are the same asthe tapes contained in the report. If the tapes are the same, theroutine 1100 proceeds to step 1170, else to step 1180. In step 1170, thesystem may send a confirmation message or other alert, and end. In step1180, if the system determines that the comparison of requested tapes torecalled tapes (or, of the received tapes to the tapes listed on acorresponding report), the system may send a message or perform anaction identifying the error and/or requesting a correction.

The system, in step 1180, may automatically request an offsite locationto correct a tape request. The system may send information related tothe comparison in step 1160. For example, if the system receives tentapes from an offsite storage location, and eleven tapes are listed onan accompanying report, the system may automatically transmit a requestfor the missing tape. The request may include information (such as datafiles or other content stored on the tape, bin information, date ofexportation, and so on related to the verified ten tapes and the onemissing tape. The system may also transit a message requesting a refundfor an erroneous shipment, or may request a future credit. Additionally,should a received tape not be a tape requested by the system, the systemmay automatically generate shipping materials and may automaticallyalert a carrier to ship the tape back to the offsite storage location.

In some cases, the system may verify the accuracy of a shipment of newlypurchased tapes. The system may compare received tapes with an invoice,report, accounting system interface or API, or other accompanyingdocumentation or related display of information, and determine theaccuracy of the shipment, as described in step 1160. If there is adiscrepancy, the system may alert a vendor of the tapes to send anymissing tapes, to request a refund, to request additional tapes, and soon. The system may gather data from a common courier to track locationsof tapes in transit and provide a graphical user interface to depictcurrently reported locations of tapes in transit.

Referring to FIG. 12, a representative computer display or web page willnow be described with respect to retrieved media verification, such asfor use with confirmation systems. Screen 1200 may show a display 1210of recalled media, such as “media 1” 1211, a group of “media 9-12” 1212,“media N,” and so on. The display 1210 may show an indicator 1215 thatthe media has been verified by the system, and may show comments orother information 1216 about the media or verification of the media. Forexample, display 1210 may indicate via a “No” indicator 1218 that “media9-12” is not verified, and may include information 1219 as to the reasonfor the “No” indication (in this example, the system did not verify thatmedia 10 is in the library).

Screen 1200 may also display components or display to view alerts 1220,components or displays to view verified media 1230, media pendingverification or future actions to verify the media 1230, or otherinformation 1240.

In some cases, the system described above may be used with respect torecalling and exporting data, in place of media components that storedata. For example, in a recall operation, an offsite storage locationmay operate by reading data from one of the stored tapes and onlytransfer the read data (such as electronically transfer) to the library110 or directly to the data storage system 210. In these cases, thesystem may recall large amounts of electronic data, and store such datain a large buffer or other readily accessible storage. However, storinglarge amounts of recalled data may compromise the local disk space of adata storage system and the system may experience similar problems asthose discussed above. Therefore, the system may use the methodsdescribed above to similarly make decisions with respect to the exportand recall of data as well as media components that store data.

Pre-Recall of Media Components

In some cases, the system may use some or all of the processes discussedherein to predict media to be used in restore and other operations. Thatis, the system may anticipate a restore operation based on a review ofhistorical data or information, may recall media containing datarequired for the restore operation, and may determine a time period orschedule to maintain recalled media in the media library. Additionally,the system may export media based on use of the media (that is, mediaused more often in restore operations may be less likely to beexported). Thus, the system may constantly monitor the provisioning ofresources in the data storage system to determine advantageous locationsfor media components. The system may save users valuable time and effortin data restores by predicting and/or anticipating a restore operationor by maintaining often used media components within close proximity orinside a media library capable of performing restore operations.

Referring to FIG. 13, a flow diagram illustrating a routine 1300 forrecalling media based on a predicted restore operation is shown. In step1310, the system reviews the data storage system information. The systemmay review historical failure information related to components or otherresources of the system. In step 1320, the system may, upon reviewingsuch information, predict the failure of a system resource. In step1330, the system may recall media containing information and otherresources necessary to restore operation of a failed system resource. Instep 1340, the system predicts correctly, and performs a restoreoperation on the failed resource using the recalled media component. Instep 1350, the system may update a log, database, or other datastructure to reflect the failure and restore in order to provide thesystem with additional information for later predictions. In step 1360,the system may export the media back to the previous location of themedia, such as an offsite storage location or media pool.

For example, the system determines that a “component B” fails three tofive days after a “component A” fails. Once alerted to the failure ofcomponent A, the system may predict the failure of component B in threeto five days. Therefore, the system may recall a media componentcontaining the information needed to restore the information incomponent B. If component B fails, the system may utilize the recalledmedia to restore the component, update a log related to system restoreprocesses, and export the media out of the library. If component B doesnot fail, the system may store the media in the library until apre-determined time, and then export the media. Thus, the system mayanticipate the failure of a component and quickly act to restore thecomponent, trading off a perhaps unnecessary recall of media.

Movement Based on Changes to a Data Set

In some cases, the system may recall or export media to a media librarybased on changes to a data set with a file system or other data systemassociate with a data storage system. For example, the system may reviewor receive an indication of changes made to a data set, such as anoriginal data set of a file system that is often copied, and recallmedia components containing similar data.

Referring to FIG. 14, a flow diagram illustrating an exemplary routine1400 for recalling media based on changes to a data set is shown. Instep 1410, the system receives an indication about a change to a dataset. For example, the system may identify a change in data or acharacteristic or metadata of data associated with a data set. A changeto a characteristic may be, for example, a change to a use of the data,an owner of the data, a frequency of access to the data, the size of thedata set, and so on. In step 1420, the system recalls media componentscontaining a copy of the data or similar data. For example, the systemmay recall a tape having a copy of the data set identified in step 1410.The system, in step 1430, may perform an action with the recalled mediabased on the changes or based on other information. For example, thesystem may update the metadata related to the copy of data on therecalled media component to reflect the identified changes. The systemmay recall the media to perform other actions, such as additional datastores, restores, and so on. The system may recall the media and storethe media in the library for a pre-determined time, or may look to analgorithm or data structure to determine how best to locate the mediacomponent. For example, the system may identify a change as an indicatorof a future restore operation, and recall a media component that mayassist in the future restore operation. In step 1440, the system, uponusing a recalled media component, may export the media out of thelibrary to a previous location or other location of the recalled mediacomponent.

Conclusion

Systems and modules described herein may comprise software, firmware,hardware, or any combination(s) of software, firmware, or hardwaresuitable for the purposes described herein. Software and other modulesmay reside on servers, workstations, personal computers, computerizedtablets, PDAs, and other devices suitable for the purposes describedherein. In other words, the software and other modules described hereinmay be executed by a general-purpose computer, e.g., a server computer,wireless device or personal computer. Those skilled in the relevant artwill appreciate that aspects of the invention can be practiced withother communications, data processing, or computer systemconfigurations, including: Internet appliances, hand-held devices(including personal digital assistants (PDAs)), wearable computers, allmanner of cellular or mobile phones, multi-processor systems,microprocessor-based or programmable consumer electronics, set-topboxes, network PCs, mini-computers, mainframe computers, and the like.Indeed, the terms “computer,” “server,” “host,” “host system,” and thelike are generally used interchangeably herein, and refer to any of theabove devices and systems, as well as any data processor. Furthermore,aspects of the invention can be embodied in a special purpose computeror data processor that is specifically programmed, configured, orconstructed to perform one or more of the computer-executableinstructions explained in detail herein.

Software and other modules may be accessible via local memory, via anetwork, via a browser or other application in an ASP context, or viaother means suitable for the purposes described herein. Examples of thetechnology can also be practiced in distributed computing environmentswhere tasks or modules are performed by remote processing devices, whichare linked through a communications network, such as a Local AreaNetwork (LAN), Wide Area Network (WAN), or the Internet. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices. Data structures describedherein may comprise computer files, variables, programming arrays,programming structures, or any electronic information storage schemes ormethods, or any combinations thereof, suitable for the purposesdescribed herein. User interface elements described herein may compriseelements from graphical user interfaces, command line interfaces, andother interfaces suitable for the purposes described herein. Screenshotspresented and described herein can be displayed differently as known inthe art to input, access, change, manipulate, modify, alter, and workwith information.

Examples of the technology may be stored or distributed oncomputer-readable media, including magnetically or optically readablecomputer discs, hard-wired or preprogrammed chips (e.g., EEPROMsemiconductor chips), nanotechnology memory, biological memory, or otherdata storage media. Indeed, computer implemented instructions, datastructures, screen displays, and other data under aspects of theinvention may be distributed over the Internet or over other networks(including wireless networks), on a propagated signal on a propagationmedium (e.g., an electromagnetic wave(s), a sound wave, etc.) over aperiod of time, or they may be provided on any analog or digital network(packet switched, circuit switched, or other scheme).

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” As used herein, the terms “connected,”“coupled,” or any variant thereof, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or acombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, shall referto this application as a whole and not to any particular portions ofthis application. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,and any combination of the items in the list.

The above detailed description of examples of the technology is notintended to be exhaustive or to limit the invention to the precise formdisclosed above. While specific embodiments of, and examples for, theinvention are described above for illustrative purposes, variousequivalent modifications are possible within the scope of the invention,as those skilled in the relevant art will recognize. For example, whileprocesses or blocks are presented in a given order, alternativeembodiments may perform routines having steps, or employ systems havingblocks, in a different order, and some processes or blocks may bedeleted, moved, added, subdivided, combined, and/or modified to providealternative or subcombinations. Each of these processes or blocks may beimplemented in a variety of different ways. Also, while processes orblocks are at times shown as being performed in series, these processesor blocks may instead be performed in parallel, or may be performed atdifferent times.

The teachings of the technology provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various embodiments described above can be combined toprovide further examples. Any patents and applications and otherreferences noted above, including any that may be listed in accompanyingfiling papers, are incorporated herein by reference. Aspects of theinvention can be modified, if necessary, to employ the systems,functions, and concepts of the various references described above toprovide yet further examples of the technology.

These and other changes can be made to the invention in light of theabove Detailed Description. While the above description describescertain embodiments of the invention, and describes the best modecontemplated, no matter how detailed the above appears in text, theinvention can be practiced in many ways. Details of the system andmethod for classifying and transferring information may varyconsiderably in its implementation details, while still beingencompassed by the invention disclosed herein. As noted above,particular terminology used when describing certain features or aspectsof the invention should not be taken to imply that the terminology isbeing redefined herein to be restricted to any specific characteristics,features, or aspects of the invention with which that terminology isassociated. In general, the terms used in the following claims shouldnot be construed to limit the invention to the specific embodimentsdisclosed in the specification, unless the above Detailed Descriptionsection explicitly defines such terms. Accordingly, the actual scope ofthe invention encompasses not only the disclosed embodiments, but alsoall equivalent ways of practicing or implementing the technology underthe claims. While certain aspects of the technology are presented belowin certain claim forms, the inventors contemplate the various aspects ofthe technology in any number of claim forms. For example, while only oneaspect of the technology is recited as embodied in a computer-readablemedium, other aspects may likewise be embodied in a computer-readablemedium. Accordingly, the inventors reserve the right to add additionalclaims after filing the application to pursue such additional claimforms for other aspects of the technology.

From the foregoing, it will be appreciated that specific embodiments ofthe invention have been described herein for purposes of illustration,but that various modifications may be made without deviating from thespirit and scope of the invention. Accordingly, the invention is notlimited except as by the appended claims.

1. A method of verifying a request for data storage media to be recalled from an off-site location to a data storage media library associated with a data storage operation, the method comprising: receiving information indicating a shipment of media components sent from a media storage facility to the media library; upon receipt at the media library of the shipment of media components from the media storage facility, automatically or partially automatically identifying the media components in the shipment; automatically comparing the identified media components with the received information indicating the media components sent from the media storage facility; and when the comparison determines that the identified media components include the indicated media components, automatically confirming receipt of the requested media components; or when the comparison determines that the identified media components do not include all of the indicated media components, automatically or partially automatically performing an action to obtain the not included media components.
 2. A system for verifying a shipment of requested data storage media components received at a media library, the system comprising: an identification component, wherein the identification component identifies the received media components; a comparison component, wherein the comparison component compares information related to the identified media components with information related to the requested media components; and a verification component in communication with the identification component and comparison component, wherein the verification component determines if the shipment contains the requested media components based at least in part on the comparison.
 3. The system of claim 2, wherein the identification component includes a machine-readable symbol scanner configured to identify a media component by reading one or more machine-readable symbols of the media component.
 4. The system of claim 2, wherein the information related to the requested media components includes a printed report automatically generated by a provider of the requested media components.
 5. The system of claim 2, further comprising: a system information component, wherein the system information component is configured to review the information related to the requested media components and determine a possible location of a requested media component not included in the shipment.
 6. The system of claim 2, further comprising: an error correction component, wherein the error correction component performs an action related to correcting an error in shipment when the verification component determines that the shipment does not contain all the requested media components.
 7. The system of claim 2, further comprising: a confirmation component, wherein the confirmation component performs an action related to confirming that the shipment contains all the requested media components.
 8. A method of correcting an erroneous shipment of media components received at a data storage library, the method comprising: determining that media components requested by the data storage library are not included in the shipment, or that the shipment contains media components not requested by the data storage library, by comparing the received media components with a report included in the shipment that provides information identifying the requested media components; and automatically performing an action to correct the erroneous shipment of media components to the data storage library.
 9. A computer-readable medium containing executable code that causes a computing system to perform a method of verifying a recall of data to a data storage system, the method comprising: transmitting a request for a specified set of data stored at a data storage facility; receiving a set of data at the data storage system from the data storage facility; comparing the requested set of data with the received set of data; and upon determining that the received set of data contains the requested set of data, performing an action confirming the receipt of the specified set of data; or upon determining that the received set of data does not contain the requested set of data, performing an action to obtain the specified set of data. 